<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Images Multi-Composantes</title>
<link href="templatemo_style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="templateo_container">
	<div id="templatemo_top_panel">
    	<div id="site_logo">
        	<a href="index.html"><img src="images/templatemo_logo.jpg" alt="Images Multi-Composantes" /></a>
        </div>
        <div id="header_menu_section">
            <div class="header_menu contact_menu">
            	<a href="http://www.ingenieur-imac.fr/"></a>
            </div>
        </div><!-- end of header mneu section -->
    
    	<div class="cleaner"></div>
    </div> <!-- end of top panel -->
    
    <div id="templatemo_menu_banner_panel">
    
    	<div id="templatemo_menu_wrapper">
        	<div id="templatemo_menu">
                <ul>
                   <li><a href="index.html">Accueil</a></li>
					  <li><a href="explication.html">Théorie des images </a></li>
                      <li><a href="rgb.html">Images RGB</a></li>
					  <li><a href="hsv.html">Images HSV & CMYK</a></li>
                      <li class="last"><a href="hyperspectrale.html">Images Hyperspectrales</a></li>
                </ul>    	
            </div> <!-- end of menu -->        
        </div> <!-- end of menu wrapper -->
        
        <div id="templatemo_banner">
        
        	<div class="header_02" style="color:#ffffff" >Explications</div>
            <p></p>
        
        </div> <!-- end of banner -->
        
        <div class="cleaner">&nbsp;</div>    
    </div> <!-- end of menu & banner panel -->
    
    <div id="templatemo_content_wrapper">
    	
        <div id="templatemo_content">
			
			
				<div class="header_01">Avant propos sur les images</div>
				<div class="section_w600">
					<p>Les images numériques noires et blanches dites "classiques" telles que nous les connaissont, sont représentées sous forme de champ 2D.
					Elles se composent d'une succession de valeurs comprises entre 0 et 255 qui determineront un niveau de gris. Ici on ne code donc que l'intensité lumineuse globale d'un pixel,
					indépendement de ses composantes colorimétriques. 
					Cette gamme de valeur est dictée par le fait qu'en informatique, on stocke ces valeurs sur un octet (8bits), permettant de coder 2^8 valeurs, soit 256 possibilités.
					On obtient donc une image monocomposante pouvant répondant à la relation suivante : </p>
					
					<br/><center><img src="http://latex.codecogs.com/gif.latex?\small%200%20\leqslant%20f(x,y)%20\leqslant%20255" /></center></br>
					
					<center><p>Où f(x, y) est la valeur d'un pixel.<p></center><br/>
					
					<p>Nous avons là un premier exemple d'image monocomposante dans le sens où pour chaque pixel, une seule valeur est représentative de la couleur de l'image. </p>
					
					
					
					
					<div class="cleaner"></div>
				</div>
				</br></br>
				<div class="header_01">Représentation des images monocomposantes</div>
				<p>Mathématiquement il est existe plusieurs façon de représenter des images monocomposantes. S'il existe plusieurs méthodes, c'est notamment pour faciliter certains algorithme d'analyse et de traitement d'images. Nous verrons ici trois possibilitées.</p></br></br>
				<div class="header_02">Champ 2D</div>
                <div class="section_w600">
					<p>La représentation sous forme de champ 2D d'une image est une application associant 2 coordonnées à 1 scalaire (que l'on associe à une valeur ou couleur de pixel) que l'on note :</br></br>
					<img src="http://latex.codecogs.com/gif.latex?(f_n_,_m)" /> et les variables n et m sont définies de la sorte : <img src="http://latex.codecogs.com/gif.latex?\small%20\left\{\begin{matrix}%200%20\leqslant%20n%20\leqslant%20N-1%20\\%200%20\leqslant%20m%20\leqslant%20M-1%20\end{matrix}\right." /> ou M et N sont les dimensions de l'images, respectivement la largueur et la hauteur.</br>
					</br>
					Ainsi pour la figure 1 ci-dessous : </br>
					<ul>
						<li><img src="http://latex.codecogs.com/gif.latex?f(0,0)%20=%200" />
						<li><img src="http://latex.codecogs.com/gif.latex?f(99,0)%20=%20255" />
						<li><img src="http://latex.codecogs.com/gif.latex?f(0,99)%20=%20255" />
						<li><img src="http://latex.codecogs.com/gif.latex?f(99,99)%20=%200" />
					</ul>
					</p>
					<center><img src="exemples/checker.jpg"/></br><i style="color:#000000">fig. 1 - Checker de taille 100*100</i></center>

					<div class="cleaner"></div>
				</div>
				</br></br>
				<div class="header_02">Représentation vectorielle</div>
                <div class="section_w600">
					<p>La représentation vectoriel consiste à créer 1 vecteur par ligne contenant l'ensemble des valeurs des pixels
					de cette ligne. Ce qui se traduit mathématiquement par :</br></br></p>
					
					<center><img src="http://latex.codecogs.com/gif.latex?\small%20F_n%20=%20\begin{bmatrix}%20f_n_,_0%20\\%20f_n_,_1%20\\%20...%20\\%20f_n_,_M_-_1%20\\%20\end{bmatrix}\in \mathbb{C}^M" /></center></br>
					
					<p>avec <img src="http://latex.codecogs.com/gif.latex?\small%20\forall%20n%20\in%20\begin{bmatrix}%200%20&;&%20N-1%20\end{bmatrix}" /> où N est le nombre de lignes (hauteur) et M la largeur de l'image. Puis, pour représenter l'image totale,
					on regroupe l'ensemble des vecteurs précédents au sein d'un vecteur global :</br></br></p>
					
					<center><img src="http://latex.codecogs.com/gif.latex?\small%20F%20=%20\begin{bmatrix}%20F_0%20\\%20F_1%20\\%20...%20\\%20F_N_-_1%20\\%20\end{bmatrix}\in \mathbb{C}^N^M" /></center></br>
					</br><p>
					Ainsi pour la figure 1 on obtiendrait : </br>
					<ul>
						<li><img src="http://latex.codecogs.com/gif.latex?F_0_,_0%20=%200" />
						<li><img src="http://latex.codecogs.com/gif.latex?F_9_9_,_0%20=%20255" />
						<li><img src="http://latex.codecogs.com/gif.latex?F_0_,_9_9%20=%20255" />
						<li><img src="http://latex.codecogs.com/gif.latex?F_9_9_,_9_9%20=%200" />
					</ul>
					</p>
					<div class="cleaner"></div>
				</div>
				</br></br>
				<div class="header_02">Représentation Matricielle</div>
                <div class="section_w600">
					<p>La dernière forme de représentation est assez naturelle. Elle consiste à créer une matrice de taille <img src="http://latex.codecogs.com/gif.latex?\small%20N*M" />  et de stocker chaque valeur
					de pixel à la position <img src="http://latex.codecogs.com/gif.latex?\small%20(x;y)" /> à sa position correspondante dans la matrice. On note cette matrice :</br></br></p>
					<center><img src="http://latex.codecogs.com/gif.latex?\small%20\begin{bmatrix}F\end{bmatrix}%20=%20\begin{bmatrix}f_0_,_0&%20...%20&f_0_,_M_-_1\\...&%20...%20&...\\f_N_-_1_,_0&%20...%20&f_N_-_1_,_M_-_1\end{bmatrix}\in \mathbb{C}^N^M" /></center>
					</br>
					<p>
					Ainsi pour la figure 1 on obtiendrait le même résultat que pour la représentation vectorielle : </br>
					<ul>
						<li><img src="http://latex.codecogs.com/gif.latex?F_0_,_0%20=%200" />
						<li><img src="http://latex.codecogs.com/gif.latex?F_9_9_,_0%20=%20255" />
						<li><img src="http://latex.codecogs.com/gif.latex?F_0_,_9_9%20=%20255" />
						<li><img src="http://latex.codecogs.com/gif.latex?F_9_9_,_9_9%20=%200" />
					</ul>
					</p>
					<div class="cleaner"></div>
				</div>
				</br></br>
				<div class="header_01">De l'image mono à l'image multi composantes</div>
				<div class="section_w600">
					
					<p>A ce stage de compréhension, nous sommes en droit de nous demander ce qui justifie l'utilisation d'image multicomposantes. 
					La réponse à cette question se trouve dans un premier temps dans le fonctionnement de l'oeil humain. En effet ce dernier se compose de trois types de cônes, sensibles à différentes bandes de fréquence.
					On distingue donc les cônes sensibles au rouge, au vert et au bleu. 
					L'oeil humain est donc capable de percevoir une intensité lumineuse sur 3 bandes de fréquences et donc de percevoir de nombreuses nuances de couleurs via la synthèse additive. </p>
					<br/>
					<center><img src="images/spectre_visible.jpg" ></center>
					<br/>
					<p>Lorsque nous soumetions à l'oeil humain une image monocomposante en niveau de gris, ce dernier captait en réalité une valeur d'intenstité lumineuse identique pour les 3 composantes RGB. </p>
					<br/>
					<p>Nous verrons par la suite qu'il existe d'autres justifications aux images multicomposantes, nottament au niveau de l'imagerie hyperspectrale. 
					<br/><br/>
					
				</div>
				<div class="cleaner"></div>
				<div class="header_01">Images Multi-Composantes</div>
				<div class="section_w600">
					
					<p>Les images multi-composantes doivent donc stocker plusieurs informations sur chaque pixel. Ces informations peuvent être de tout type : couleur, temps, hauteur, longueur d'onde ... Pour stocker ces données,
					on peut facilement utiliser les représentations  monocomposantes en remplaçant une donnée par un vecteur de données ou en ajoutant une dimension.
					</br></br>
					<div class="header_02">Champ 2D</div>
					<div class="section_w600">
						<p>Comme nous l'avons vu, l'application associe 2 coordonnés à une valeur, mais il se peut qu'on lui associe un vecteur de données comme pour les <a href="rgb.html">images RGB</a>.
						Par exemple pour la figure 1, on pourrait créer un vecteur contenant la couleur et une valeur aléatoire :</br>
						<ul>
						<li><img src="http://latex.codecogs.com/gif.latex?f(0,0)%20=%20\begin{bmatrix}%200%20&;&%2015%20\end{bmatrix}^T" />
						<li><img src="http://latex.codecogs.com/gif.latex?f(99,0)%20=%20\begin{bmatrix}%20255%20&;&%20-3%20\end{bmatrix}^T" />
						<li><img src="http://latex.codecogs.com/gif.latex?f(0,99)%20=%20\begin{bmatrix}%20255%20&;&%20127%20\end{bmatrix}^T" />
						<li><img src="http://latex.codecogs.com/gif.latex?f(99,99)%20=%20\begin{bmatrix}%200%20&;&%2012%20\end{bmatrix}^T" />
						</ul>
						</p>
					</div>
					</br></br>
					<div class="header_02">Représentation vectorielle</div>
					<div class="section_w600">
						<p>Ici, il faut stocker un vecteur à la place d'une valeur de pixel :</br></p>
						<center><img src="http://latex.codecogs.com/gif.latex?\small%20F_n%20=%20\begin{bmatrix}%20\begin{bmatrix}f\end{bmatrix}_n_,_0%20\\%20\begin{bmatrix}f\end{bmatrix}_n_,_1%20\\%20...%20\\%20\begin{bmatrix}f\end{bmatrix}_n_,_M_-_1%20\\%20\end{bmatrix}" /></center></br>
						<p>Ou <img src="http://latex.codecogs.com/gif.latex?\begin{bmatrix}f\end{bmatrix}" /> est un vecteur à la place d'une valeur de pixel</p>
					</div>
					</br></br>
					<div class="header_02">Représentation matricielle</div>
					<div class="section_w600">
						<p>Ici, on peut stocker soit un vecteur à la place d'une valeur de pixel soit augmenter la dimension de la matrice. Par exemple s'il y a 3 valeurs celà donnera une matrice de dimension <img src="http://latex.codecogs.com/gif.latex?N*M*3" /></br></p>
						</br></br>
						<center><img src="http://latex.codecogs.com/gif.latex?\small%20\begin{bmatrix}F\end{bmatrix}_d%20=%20\begin{bmatrix}f_0_,_0_,_d&%20...%20&f_0_,_M_-_1_,_d\\...&%20...%20&...\\f_N_-_1_,_0_,_d&%20...%20&f_N_-_1_,_M_-_1_,_d\end{bmatrix}\in \mathbb{C}^N^M^*^3" /></center>
						</br>
						<p><img src="http://latex.codecogs.com/gif.latex?d%20\in \begin{bmatrix}0&;&3 \end{bmatrix}" /> pour notre exemple.</p>
					</div>
						</br></br>
					<div class="header_02">Représentation volumique</div>
					<div class="section_w600">
					<p>Cette représentation consiste à passer en 3 dimensions les images monochromes 2D représentées spatiallement par x et y. La nouvelle dimension sera la composante donnant à l'image sa propriété multi-composante (ex : temps en secondes, longueur d'onde en nanomètres).<br>  
					On créé ainsi un ensemble de voxels auxquels on associera une grandeur scalaire. On définira donc l'application S comme suit : <br><br>
					<center><a href="http://www.codecogs.com/eqnedit.php?latex=\\S: N^2 * V \rightarrow N\\ x, y, v \rightarrow S(x, y, v)" target="_blank"><img src="http://latex.codecogs.com/gif.latex?\\S: N^2 * V \rightarrow N\\ x, y, v \rightarrow S(x, y, v)" title="\\S: N^2 * V \rightarrow N\\ x, y, v \rightarrow S(x, y, v)" /></a></center>
					<br>
					<P>Avec v la troisième variable définie sur un support V. 
					</div>
					<br><br>
					<div class="header_02">Représentation multiscalaire</div>
					<div class="section_w600">
					<p>Cette représentation est sans doute la plus simple car elle ne fait pas appel à de nouveaux concepts mathématiques que ceux employés pour les images 2D monocomposantes. Il s'agit ici de considérer
						l'image multicomposantes comme une succession d'images monocomposantes. 
						<br><br>
						<a href="http://www.codecogs.com/eqnedit.php?latex=\\I: N^2 \rightarrow N^M\\ x, y \rightarrow \begin{Bmatrix} I^1(x, y),...,I^M(x,y) \end{Bmatrix}" target="_blank"><img src="http://latex.codecogs.com/gif.latex?\\I: N^2 \rightarrow N^M\\ x, y \rightarrow \begin{Bmatrix} I^1(x, y),...,I^M(x,y) \end{Bmatrix}" title="\\I: N^2 \rightarrow N^M\\ x, y \rightarrow \begin{Bmatrix} I^1(x, y),...,I^M(x,y) \end{Bmatrix}" /></a>
					</div>
					<div class="cleaner"></div>
					
				</div>
				
				<br><br>
				<div class="header_01">Nature des composantes</div>
					<div class="section_w600">
					<p>Cette partie s'intéresse à la dimension physique des composantes d'un pixel ou d'une image. On pourra distinguer 2 cas de figure : 
					<br><br>-Composantes homogènes : <br><br>
					Dans ce cas, les composantes sont de même dimension. C'est le cas de l'<a href="rgb.html">image RGB</a>. On pourra utiliser ici la représentation matricielle, volumique, multiscalaire ou vectorielle. 
					<br><br>-Composantes hétérogènes : <br><br>
					Ce cas de figure concerne des images dont les composantes n'auraient pas les mêmes dimensions physiques. C'est le cas des <a href="hsv.html">images HSV </a>(Hue, Saturation, Value). Dans ce cas la construction d'un vecteur tenant compte des grandeurs n'est pas possible. On recommandera donc la représentation multi-scalaire. 
					</div>
			<div class="cleaner"></div>
            
        </div> <!-- end of content -->
        
    </div> <!-- end of content wrapper -->
    
    <div id="templatemo_footer">
        Copyright © 2012 Adrien KIELB | Designed by <a href="http://www.templatemo.com" target="_parent">Free CSS Templates</a>
    </div> <!-- end of footer -->
</div> <!-- end of container -->
</body>
</html>